package com.graduation.springbootinit.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.graduation.springbootinit.model.entity.ShopPart.ProductComment;

import java.util.List;

public interface ProductCommentService extends IService<ProductComment> {
    /**
     * 添加评论
     *
     * @param comment 评论信息
     */
    void addComment(ProductComment comment);

    /**
     * 删除评论
     *
     * @param id 评论ID
     */
    void deleteComment(Long id, Long userId);

    /**
     * 更新评论
     *
     * @param comment 评论信息
     */
    void updateComment(ProductComment comment);

    /**
     * 根据商品ID获取评论列表
     *
     * @param productId 商品ID
     * @return 评论列表
     */
    List<ProductComment> getCommentsByProductId(Long productId);

    /**
     * 获取商品评论列表（分页）
     */
    Page<ProductComment> getProductComments(Long productId, int pageNum, int pageSize);

    /**
     * 获取评论的回复列表
     */
    List<ProductComment> getCommentReplies(Long commentId);

    /**
     * 点赞评论
     */
    void likeComment(Long commentId);

    /**
     * 获取用户的所有评论
     */
    List<ProductComment> getUserComments(Long userId);

    /**
     * 获取商品评论总数
     */
    Long getCommentCount(Long productId);

    /**
     * 获取商品平均评分
     */
    Double getAverageRating(Long productId);
}